// 引入获取图像识别token 和 图像识别函数
import {returnWordToken} from '../../request/request.js'
import {word_discern} from '../../request/request.js'

// pages/animal_discern/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tips_list:[
      '1.上传图片最好包含身份证正反面',
      '2.支持识别出的文字进行一键复制',
      '3.支持对二代居民身份证所有8个字段进行结构化识别'
    ],
    img_file_path: '',
    result_data: {},
    result_status: false
  },
  id_card_side: 'front',
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 获取图像识别token 置于缓存中
    const word_token = returnWordToken()
  },

  // 子组件选择图片事件
  async handleImgChoice(e){
    // 新请求前重置结果集
    this.setData({result_data: {}, result_status: false})
    // 获取图片路径
    const {tempFilePaths} = e.detail
    this.setData({img_file_path: tempFilePaths})
    const word_token = wx.getStorageSync('word_token').word_token
    const req_url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=' + word_token
    const id_card_side = this.id_card_side
    const result_data = await word_discern(tempFilePaths, req_url,id_card_side)
    //根据返回结果进行提示
    if(result_data.image_status === 'non_idcard'){
      wx.showToast({
        title: '上传的图片不包含身份证',
        icon:'none',
        mask: true,
        duration: 1500
      })
    }else if(result_data.image_status === 'other_type_card'){
      wx.showToast({
        title: '其他类型证照',
        icon:'none',
        mask: true,
        duration: 1500
      })
    }else if(result_data.image_status === 'reversed_side'){
      wx.showToast({
        title: '身份证正反面颠倒',
        icon:'none',
        mask: true,
        duration: 1500
      })
      this.setData({result_data: result_data.words_result, result_status: true})
      console.log(result_data.words_result);
    }else if(result_data.image_status === 'normal'){
      this.setData({result_data: result_data.words_result, result_status: true})
      console.log(result_data.words_result);
    }else{
      wx.showToast({
        title: '未能识别',
        icon:'none',
        mask: true,
        duration: 1500
      })
    }
  },
  // 上传正反面选择回调函数
  handleCardSide(e){
    this.id_card_side = e.detail.value
  },
  // 复制结果到剪贴板中
  handleCopy(){
    const that = this
    const data = that.data.result_data
    const keys = Object.keys(data)
    const values = Object.values(data)
    let copy_data =  ''
    for(let i in keys){
      copy_data += keys[i] + '：' + values[i].words + '\n'
    }
    wx.setClipboardData({
      data: copy_data,
      success: (res) =>{
        wx.showToast({
          title: '复制成功',
          mask: true,
          icon: 'success'
        })
      }
      
    })
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    // 重新分享方法
    wx.showShareMenu({
      withShareTicket: true,
      menus: ['shareAppMessage', 'shareTimeline']
    })
    return {
      title: "身份证识别",
      path: "/pages/personcard/index"
    }
  },
  /**
   * 用户点击分享朋友圈
   */
  onShareTimeline(){}

})
